/* ************************************************************************

   Copyright: Juan Antonio Aldea Armenteros

   License: GPL v3

   Authors: Juan Antonio Aldea Armenteros

************************************************************************ */

qx.Class.define("jabber.Contactos",
{
  extend : qx.ui.container.Composite,

  construct : function(jid)
  {
    this.base(arguments);
    this.setLayout(new qx.ui.layout.Dock());
    this.__arbol = this._createChildControlImpl("arbol", jid);
  },

  events : { "crear_ventana" : "qx.event.type.Data" },

  members :
  {
    __arbol : null,


    /**
     * TODOC
     *
     * @param id {var} TODOC
     * @param datos {var} TODOC
     * @return {var} TODOC
     */
    _createChildControlImpl : function(id, datos)
    {
      var control;

      if (id == "arbol")
      {
        control = new qx.ui.tree.Tree();

        control.set(
        {
          width  : 200,
          height : 400
        });

        var root = new qx.ui.tree.TreeFolder(datos);
        root.setOpen(true);
        control.setRoot(root);
        control.setHideRoot(true);
        this.add(control);
      }

      return control || this.base(arguments, id);
    },


    /**
     * TODOC
     *
     * @param jid {var} TODOC
     * @param nombre {var} TODOC
     * @param estado {var} TODOC
     * @return {void}
     */
    addContacto : function(jid, nombre, estado)
    {
      var contacto = new jabber.Contacto(jid, nombre, estado);

      contacto.addListener('abrir_conversacion', function(e)
      {
        this.debug("contactos");
        this.fireDataEvent('crear_ventana', e.getData());
        e.stop();
      },
      this);

      this.__arbol.getRoot().add(contacto);
    },


    /**
     * TODOC
     *
     * @param jid {var} TODOC
     * @return {var | null} TODOC
     */
    buscarContacto : function(jid)
    {
      var raiz = this.__arbol.getRoot();

      if (raiz.hasChildren())
      {
        var contactos = raiz.getItems(true, true);

        for (var i in contactos)
        {
          if (contactos[i].getJid() == jid) {
            return contactos[i];
          }
        }

        return null;
      }
    }
  }
});